package shujia.day13;

import java.io.FileOutputStream;
import java.io.OutputStreamWriter;

/*
    字符流 = 字节流 + 编码表：
        字符输出流：Writer【抽象类】
                    - OutputStreamWriter
        字符输入流：Reader


    OutputStreamWriter构造方法：
        OutputStreamWriter(OutputStream out) 创建一个使用默认字符编码的OutputStreamWriter。
        OutputStreamWriter(OutputStream out, String charsetName) 创建一个使用命名字符集的OutputStreamWriter。

    Writer字符输出流写数据的方式：
        public void write(int c)
        public void write(char[] cbuf)
        public void write(char[] cbuf,int off,int len)
        public void write(String str)
        public void write(String str,int off,int len)

    注意:
        只要是字符流写数据，将来都需要进行flush操作


 */
public class OutputStreamWriterDemo1 {
    public static void main(String[] args) throws Exception{
        //OutputStreamWriter(OutputStream out) 使用平台默认的编码写字符数据到文本文件中
//        OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("src/shujia/day13/b1.txt"));
        //OutputStreamWriter(OutputStream out, String charsetName) 指定编码创建字符输出流对象
        OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("src/shujia/day13/b1.txt"),"GBK");

        //public void write(int c) 一次写一个字符
//        osw.write(101);
//        osw.flush();

        //public void write(char[] cbuf) 一次写一个字符数组
//        char[] chars = {'我','爱','中','国'};
//        osw.write(chars);
//        osw.flush();

        // public void write(char[] cbuf,int off,int len) 一次写字符数组的一部分
//        osw.write(chars,2,2);
//        osw.flush();

        //public void write(String str) 直接写一个字符串
        osw.write("张成阳是世界上最帅的男人！");
        osw.flush();

        //public void write(String str,int off,int len) 写字符串的一部分
//        osw.write("张成阳是世界上最帅的男人！", 4,3);
//        osw.flush();

        // 释放资源
        osw.close();
    }
}
